home *** CD-ROM | disk | FTP | other *** search
/ Complete Linux / Complete Linux.iso / docs / apps / database / ingres04.lzh / source / parser / par_init.c < prev    next >
Encoding:
C/C++ Source or Header  |  1985-01-23  |  1.6 KB  |  94 lines

  1. # include    <ingres.h>
  2. # include    <symbol.h>
  3. # include    "parser.h"
  4. # include    <access.h>
  5. # include    <sccs.h>
  6.  
  7. SCCSID(@(#)par_init.c    8.2    1/15/85)
  8.  
  9. /*
  10. **  PAR_INIT -- initialization call for parser
  11. **
  12. **    Trace Flags:
  13. **        par_init ~~ 60.0
  14. */
  15.  
  16. par_init(argc, argv1)
  17. int    argc;
  18. char    *argv1[];
  19. {
  20.     register int    rt;
  21.     register char    **argv;
  22.  
  23.     extern int        Noupdt;
  24.     extern int        Dcase;
  25.     extern char        *Relspec;
  26.     extern char        *Indexspec;
  27.     extern DESC        Attdes;
  28.     extern struct admin    Admin;
  29.     extern int        Qrymod;
  30.     extern int        yydebug;
  31.  
  32.     /* set up parser */
  33.     argv = argv1;
  34.  
  35.  
  36.  
  37. #    ifdef    xPTR1
  38.     if (tTf(60, 0))
  39.         yydebug = 1;
  40. #    endif
  41.  
  42. #    ifdef    xPTR2
  43.     if (tTf(60, 1))
  44.     {
  45.         printf("Par_init:    ");
  46.         prargs(argc, argv);
  47.     }
  48. #    endif
  49.  
  50.     Noupdt = !setflag(argv, 'U', 0);
  51.     Dcase = setflag(argv, 'L', 1);
  52.  
  53.     /* if param specified, set result reln storage structures */
  54.     Relspec = "cheapsort";        /* default to cheapsort on ret into */
  55.     Indexspec = "isam";        /* isam on index */
  56.  
  57.     for (rt = FREEFLAGS; rt < argc; rt++)
  58.     {
  59.         if (argv[rt][0] == '-')
  60.         {
  61.             if (argv[rt][1] == 'r')
  62.             {
  63.                 Relspec = &argv[rt][2];
  64.             }
  65.             if (argv[rt][1] == 'n')
  66.             {
  67.                 Indexspec = &argv[rt][2];
  68.                 continue;
  69.             }
  70.         }
  71.     }
  72.     if (sequal(Relspec, "heap"))
  73.         Relspec = 0;
  74.     if (sequal(Indexspec, "heap"))
  75.         Indexspec = 0;
  76.  
  77.     rnginit();
  78.     opencatalog("attribute", OR_READ);
  79.  
  80.     Qrymod = ((Admin.adhdr.adflags & A_QRYMOD) == A_QRYMOD);
  81.  
  82. #    ifdef    xPTR2
  83.     if (tTf(60, 2))
  84.     {
  85.         printf("Par_init: Results:\n");
  86.         printf("\tQrymod: %d\n", Qrymod);
  87.         printf("\tIndexspec: %s\n", Indexspec);
  88.         printf("\tRelspec: %s\n", Relspec);
  89.         printf("\tDcase: %d\n", Dcase);
  90.         printf("\tNoupdt: %d\n", Noupdt); 
  91.     }
  92. #    endif
  93. }
  94.